package main

import "fmt"
import "math"

func test1() {
	// go 内建变量类型
	// bool string 
	// (u)int, (u)int8, (u)int32, (u)int64, uintptr
	// byte, rune
	// float32, float64, complex64, complex128
	// var a = 1
	// var b = 1.1
	// var c = "hello go"
	// // 冒号等于只能在函数内使用
	// a, b, c = 1, 2.1, "hello world"

	// fmt.Println(a,b,c)

	// go 语言变量类型写在变量名之后
	// 编译器可推测变量类型
	// 没有char 只有rune
	// 原生支持复数类型
	// // 常量
	const filename = "abc.txt"
	const a, b = 3, 4
	var c int
	c = int(math.Sqrt(a*a + b*b))	
	fmt.Println(c)
}

// 欧拉公式
func euler() {
	// c := 3 + 4i
	// fmt.Println(cmplx.Exp(1i*math.Pi) + 1)

}

// 枚举
func enum() {
	const (
		b = 1 << (10 * iota)
		kb
		mb
		gb
		tb
		pb
	)
	fmt.Println(b, kb, mb, gb, tb, pb)
}

func main() {

	fmt.Println("Hello Go!")
	test1()
	enum()
}